package com.wolfeyes.system.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.validation.constraints.NotBlank;

import com.wolfeyes.common.annotation.Excel;

import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * @see Talk is cheap, Show me the code. -- Linus Torvalds
 * @title 系统角色-实体类
 * @author yanyljava
 * @email yanyljava@qq.com
 * @create 2022-01-07 21:25
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class SysRole implements Serializable {

	/**
	 * @description 串行版本标识
	 */
	private static final long serialVersionUID = 6714816560970087669L;

	//角色ID
	@Excel(name = "角色序号", cellType = Excel.ColumnType.NUMERIC)
	private Long roleId;

	//角色名称
	@Excel(name = "角色名称")
	@NotBlank(message = "角色名称不能为空")
	private String roleName;

	//角色权限
	@Excel(name = "角色权限")
	private String roleKey;

	//角色排序
	@Excel(name = "角色排序")
	private String roleSort;
	
	//角色描述
	@NotBlank(message = "角色描述不能为空")
	private String roleDesc;

    /** 数据范围（1：所有数据权限；2：自定义数据权限；3：本部门数据权限；4：本部门及以下数据权限；5：本人） */
    @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限, 5=个人数据权限")
    @ApiModelProperty(value = "数据范围")
    private String dataScope;

	//角色拥有的权限，分多级权限存储，取名为children方便读取所有权限
	private List<SysResource> children;
	
}

